﻿#ifndef MEASURECIRCLECENTER_H
#define MEASURECIRCLECENTER_H

#include "MeasureElement.h"
namespace Qly {

class MeasureDataSet;

/**
 * @brief The MeasureCircleCenter class 圆测量，给出圆上圆心和一个点确定一个圆。
 *          m_results_um[0] 存放的是圆心的 X 坐标。
 *          m_results_um[1] 存放的是圆心的 Y 坐标。
 *          m_results_um[2] 存放的是圆的半径。
 *          m_results_um[3] 存放的是圆的直径。
 *          m_results_um[4] 存放的是圆的面积。
 *
 *          textTemplate 支持 @diameter_um, @diameter_mm, @diameter, @radius_um, @radius_mm, @radius, @unit
 *                          @area_um2, @area_mm2, @area, @areaUnit, @id 12 个关键字
 */
class MeasureCircleCenter: public MeasureElement
{
    friend MeasureDataSet;
public:
    MeasureCircleCenter(MeasureDataSet *parent = nullptr);
    QString name() Q_DECL_OVERRIDE {return m_name;}

protected:

    int mouseLButtonPress(QPointF point_pix, QPointF point_um) Q_DECL_OVERRIDE;
    int mouseMove(QPointF point_pix, QPointF point_um) Q_DECL_OVERRIDE;

    void compute(void) Q_DECL_OVERRIDE; //计算图元的位置，还有长度结果
    void updateText(bool updatePosition = true) Q_DECL_OVERRIDE;
    void paint( QPainter &painter ) Q_DECL_OVERRIDE; //画方法
};

}

#endif // MEASURECIRCLECENTER_H
